# Домашнее задание к лекции «Объекты и классы. Инкапсуляция, наследование и полиморфизм»
​
Привет! Домашняя работа по данной теме является продолжением [задания после лекции «Объекты и классы. Взаимодействие между ними»](https://github.com/netology-code/py-homeworks-basic/tree/new_oop/6.0.object_and_classes). Возьмите выполненные работы за основу и продолжите работу над ними. Ссылки на решения могут остаться прежними. 
Удачи!

## Задача №1 "Ферма Дядюшки Джо". Продолжение.
Вы уже реализовали классы животных и определили методы взаимодействия между ними.
У всех животных есть общее поведение: каждое животное можно накормить, каждое животное может подать голос.
Но есть поведение, принадлежащее только определенным животным. Например, собирать яйца можно только с кур, утки и гусей.  

## Задание 1:
Вам нужно реализовать родительский класс для всех животных и вынести общее поведение в него.  
От родительского класса должны будут отнаследоваться все остальные животные.  
В родительском классе должно быть 2-3 общих класса и общие поля.

## Задание 2:
Используя методы из родительского класса, вызовите их в цикле у списка всех животных.

## Задача №2 "Аудиоколлекция". Продолжение.
В первой части задания вы создали 2 альбома с 3 треками и вывели длительность для каждого. Попробуйте получить более подробную информацию о них, опираясь на примеры использования методов в описании заданий:

## Задание 1:
Вместо метода ```show``` использовать магический метод ```__str__``` у трека для вывода информации по треку.  
Пример использования
```python
print(track1)
Bohemian rhapsody-6min
```
У Класса Альбом также реализовать магический метод ```__str__``` для вывода информации по альбому и его треков.
Пример использования
```python
print(my_album)
Name group: Queen
Name album: Bohemian rhapsody
Tracks:
	Bohemian rhapsody-6min
	The show must go on-4min
```

## Задание 2:
Реализовать возможность сравнивать треки по длительности. Для этого нужно будет определить магические методы.
Пример
```python
track1 = Track('Bohemian rhapsody', 6)
track2 = Track('The show must go on', 4)
track1 > track2
True
```
--- 
## Как сдавать задачи
Пишите код в IDE (рекомендуем [Pycharm](https://www.jetbrains.com/ru-ru/pycharm/download/#section=windows), версия Community, инструкцию по установке вы найдете на сайте).  
- Почему лучше работать в IDE? — Ускоряет работу, есть подсветка ошибок, отладка по шагам.  
- Для более подробной информации изучите [инструкцию по работе с Pycharm](https://github.com/netology-code/guides/blob/master/python/Pycharm.md).  
- Опирайтесь на принятые [правила оформления кода](https://github.com/netology-code/codestyle/tree/master/python), чтобы выработать привычку писать профессионально. При несоблюдении принятого стиля домашние задания могут быть отправлены на доработку. 

1. Инициализируйте на своём компьютере пустой Git-репозиторий
2. Добавьте в этот же каталог необходимые файлы
3. Сделайте необходимые коммиты
4. Создайте публичный репозиторий на GitHub и свяжите свой локальный репозиторий с удалённым
5. Сделайте пуш (удостоверьтесь, что ваш код появился на GitHub)
6. Ссылку на ваш проект отправьте в личном кабинете на сайте [netology.ru](http://netology.ru/)
7. Задачи, отмеченные как необязательные, можно не сдавать, это не повлияет на получение зачета (в этом ДЗ все задачи являются обязательными)
8. Любые вопросы по решению задач задавайте в чате Slack, но мы не сможем проверить или помочь, если вы пришлете:
* архивы;
* скриншоты кода;
* теоретический рассказ о возникших проблемах.
